package club.service;

import club.pojo.Apply;
import com.github.pagehelper.PageInfo;

// 申请服务接口
// 定义了与申请相关的业务操作方法

public interface ApplyService {

    /**
     * 分页查询申请记录（支持按申请状态筛选）
     * @param state 申请状态（如0 - 待审核，1 - 通过，2 - 拒绝等），可为空表示查询所有状态
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页结果对象，包含申请记录列表及分页信息
     */
    PageInfo<Apply> allApply(Integer state, Integer pageNum, Integer pageSize);

    /**
     * 根据申请ID查询申请详情
     * @param id 申请ID
     * @return 申请对象，若不存在则返回null
     */
    Apply findByid(Integer id);

    /**
     * 更新申请信息
     * @param apply 包含更新字段的申请对象（需包含ID）
     * @return 更新成功返回1，失败返回0
     */
    int updateApply(Apply apply);

    /**
     * 根据申请ID删除申请记录
     * @param id 申请ID
     * @return  删除成功返回1，失败返回0
     */
    int del(Integer id);

    /**
     * 创建新的申请
     * @param apply 申请对象（需包含必要的申请信息）
     * @return 插入成功返回1，失败返回0
     */
    Integer create(Apply apply);
}